package exception;

/**
 * 异常处理机制中的try-catch
 * 语法：
 * try{
 *     可能出现错误的代码片段
 * }catch(XXXException e){
 *     捕获try中出现的XXXException后的处理代码
 * }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了...");
        try {
//           String str = null;
//            String str = "a";
            String str = "abc";
        /*
        当jvm执行程序的过程中出现了某个异常时,就会实例化对应的异常，并将执行过程设置其中，然后将该异常抛出
         */
            System.out.println(str.length());
            System.out.println(str.charAt(1));
            System.out.println(Integer.parseInt(str));
        }catch (NullPointerException e){
            System.out.println("出现了空指针,并且解决了!");
        }catch(StringIndexOutOfBoundsException e){
            System.out.println("出现了下标越界，并且处理了");
        }catch(Exception e){
            System.out.println("反正就是出了个错误");
        }
        System.out.println("程序结束了");
    }
}
